Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

719
Views
¿Qué hace el atributo [ApiController]?

He notado que es lo mismo si se usa este atributo o no. ¿Me equivoco?

Como ejemplo:

 [Route("[controller]")] [ApiController] public class DataTablesController: ControllerBase { [HttpGet] public IActionResult Test() { return Ok("test"); } }

No sucedió nada cuando eliminé el atributo [ApiController] .

En la documentación de Microsoft, encontré esta explicación:

Indica que un tipo y todos los tipos derivados se utilizan para servir respuestas de la API HTTP.
Los controladores decorados con este atributo están configurados con funciones y comportamientos destinados a mejorar la experiencia del desarrollador para crear API.
Cuando se decoran en un ensamblaje, todos los controladores del ensamblaje se tratarán como controladores con comportamiento de API.

¿Cuál es ese comportamiento de la API? ¿Y por qué debemos usarlo?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

El atributo [ApiController] habilita algunas funciones, incluido el requisito de enrutamiento de atributos, la validación automática del modelo y la inferencia de parámetros de origen vinculante.

Esto se tomó directamente de los documentos de MS Crear API web con ASP.NET Core :

El atributo [ApiController] se puede aplicar a una clase de controlador para habilitar los siguientes comportamientos obstinados específicos de la API:

  • Requisito de enrutamiento de atributos
  • Respuestas HTTP 400 automáticas
  • Inferencia de parámetros de origen de enlace
  • Inferencia de solicitud de datos de formulario/multiparte
  • Detalles del problema para códigos de estado de error

La función Detalles del problema para los códigos de estado de error requiere una versión de compatibilidad de 2.2 o posterior. Las otras características requieren una versión de compatibilidad de 2.1 o posterior.

Algunos detalles sobre las características a continuación:

Enrutamiento de atributos

Se requerirá el enrutamiento de atributos si usa [ApiController] , por ejemplo:

 [ApiController] [Route("[controller]")] public class DataTablesController: ControllerBase

Las acciones son inaccesibles a través de rutas convencionales definidas por UseEndpoints, UseMvc o UseMvcWithDefaultRoute en Startup.Configure

Respuestas automáticas Http 400

Agrega un filtro de acción para devolver una respuesta 400 si ModelState falla en la validación. Ya no necesita escribir esto en sus acciones, se manejará automáticamente:

 if (!ModelState.IsValid) { return BadRequest(ModelState); }

Inferencia de parámetros de origen de enlace

Nuevamente, de los documentos vinculados:

Un atributo de origen de enlace define la ubicación en la que se encuentra el valor de un parámetro de acción. Existen los siguientes atributos de origen de enlace: [FromBody] , [FromForm] , [FromHeader] , [FromQuery] , [FromRoute] , [FromServices]

Inferencia de solicitud de datos de formulario/multiparte

El atributo [ApiController] aplica una regla de inferencia cuando un parámetro de acción se anota con el atributo [FromForm]. Se deduce el tipo de contenido de solicitud de datos de formulario/multiparte.

Un ejemplo que utiliza la inferencia de parámetros de origen vinculante:

 [HttpPost] public IActionResult Test([FromForm] Model model) { return Ok("test"); }
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!